package com.campus.merchant.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 退款响应DTO
 *
 * @author ZhaoYuJie
 * @since 2025-01-15
 */
@Data
@ApiModel(value = "RefundResponseDTO", description = "退款响应结果")
public class RefundResponseDTO {

    @ApiModelProperty("退款记录ID")
    private Integer id;

    @ApiModelProperty("退款单号")
    private String refundNo;

    @ApiModelProperty("订单ID")
    private String orderId;

    @ApiModelProperty("退款金额")
    private BigDecimal refundAmount;

    @ApiModelProperty("退款原因")
    private String refundReason;

    @ApiModelProperty("退款类型：1-商户拒单，2-用户取消，3-系统退款，4-客服退款")
    private Integer refundType;

    @ApiModelProperty("微信退款单号")
    private String wechatRefundId;

    @ApiModelProperty("微信支付交易号")
    private String wechatTransactionId;

    @ApiModelProperty("退款状态：0-处理中，1-退款成功，2-退款失败")
    private Integer status;

    @ApiModelProperty("退款完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime refundTime;

    @ApiModelProperty("退款失败原因")
    private String failureReason;

    @ApiModelProperty("操作人ID")
    private Integer operatorId;

    @ApiModelProperty("操作人类型：1-商户，2-用户，3-系统，4-客服")
    private Integer operatorType;

    @ApiModelProperty("备注信息")
    private String remark;

    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @ApiModelProperty("更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

}